namespace ext
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>Creates draggable splitter bar functionality from two elements (element to be dragged and element to be resized).</summary>
	/// <htmlSummary>
	/// Creates draggable splitter bar functionality from two elements (element to be dragged and element to be resized).
	/// &lt;br&gt;&lt;br&gt;
	/// Usage:
	/// &lt;pre&gt;&lt;code&gt;
	/// var split = new Ext.SplitBar(&quot;elementToDrag&quot;, &quot;elementToSize&quot;,
	/// Ext.SplitBar.HORIZONTAL, Ext.SplitBar.LEFT);
	/// split.setAdapter(new Ext.SplitBar.AbsoluteLayoutAdapter(&quot;container&quot;));
	/// split.minSize = 100;
	/// split.maxSize = 600;
	/// split.animate = true;
	/// split.on(&apos;moved&apos;, splitterMoved);
	/// &lt;/code&gt;&lt;/pre&gt;
	/// </htmlSummary>
	/// <definedin>src\widgets\SplitBar.js</definedin>
	[ScriptName("SplitBar")]
	[ScriptNamespace("Ext")]
	[Imported()]
	public partial class SplitBar : ext.util.Observable
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="dragElement">The element to be dragged and act as the SplitBar.</param>
		/// <param name="resizingElement">The element to be resized based on where the SplitBar element is dragged</param>
		/// <param name="orientation">Either Ext.SplitBar.HORIZONTAL or Ext.SplitBar.VERTICAL. (Defaults to HORIZONTAL)</param>
		/// <param name="placement">
		/// Either Ext.SplitBar.LEFT or Ext.SplitBar.RIGHT for horizontal or
		/// Ext.SplitBar.TOP or Ext.SplitBar.BOTTOM for vertical. (By default, this is determined automatically by the initial
		/// position of the SplitBar).
		/// </param>
		public SplitBar(object dragElement, object resizingElement, System.Number orientation, System.Number placement)
		{
		}
		
		/// <summary>Constructor</summary>
		/// <param name="dragElement">The element to be dragged and act as the SplitBar.</param>
		/// <param name="resizingElement">The element to be resized based on where the SplitBar element is dragged</param>
		/// <param name="orientation">Either Ext.SplitBar.HORIZONTAL or Ext.SplitBar.VERTICAL. (Defaults to HORIZONTAL)</param>
		public SplitBar(object dragElement, object resizingElement, System.Number orientation)
		{
		}
		
		/// <summary>Constructor</summary>
		/// <param name="dragElement">The element to be dragged and act as the SplitBar.</param>
		/// <param name="resizingElement">The element to be resized based on where the SplitBar element is dragged</param>
		public SplitBar(object dragElement, object resizingElement)
		{
		}
		
		/// <summary>Constructor</summary>
		public SplitBar()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>Fires when the splitter is moved (alias for {@link #moved})</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		[ScriptName("resizeEventName")]
		public const string ResizeEventName = "resize";
		
		/// <summary>Fires when the splitter is moved</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		[ScriptName("movedEventName")]
		public const string MovedEventName = "moved";
		
		/// <summary>Fires before the splitter is dragged</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		[ScriptName("beforeresizeEventName")]
		public const string BeforeresizeEventName = "beforeresize";
		#endregion
		
		#region Properties
		/// <summary>The increment, in pixels by which to move this SplitBar. When undefined, the SplitBar moves smoothly.</summary>
		/// <htmlSummary>The increment, in pixels by which to move this SplitBar. When &lt;i&gt;undefined&lt;/i&gt;, the SplitBar moves smoothly.</htmlSummary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		[ScriptName("tickSize")]
		[IntrinsicProperty()]
		public System.Number TickSize
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		
		/// <summary>The minimum size of the resizing element. (Defaults to 0)</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		[ScriptName("minSize")]
		[IntrinsicProperty()]
		public System.Number MinSize
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		
		/// <summary>The maximum size of the resizing element. (Defaults to 2000)</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		[ScriptName("maxSize")]
		[IntrinsicProperty()]
		public System.Number MaxSize
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		
		/// <summary>Whether to animate the transition to the new size</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		[ScriptName("animate")]
		[IntrinsicProperty()]
		public bool Animate
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		
		/// <summary>Whether to create a transparent shim that overlays the page when dragging, enables dragging across iframes.</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		[ScriptName("useShim")]
		[IntrinsicProperty()]
		public bool UseShim
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		#endregion
		
		#region Methods
		/// <summary>Get the adapter this SplitBar uses</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		/// <returns>adapter object</returns>
		[ScriptName("getAdapter")]
		public object GetAdapter()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Set the adapter this SplitBar uses</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		/// <param name="adapter">A SplitBar adapter object</param>
		[ScriptName("setAdapter")]
		public void SetAdapter(object adapter)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the minimum size for the resizing element</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		/// <returns>The minimum size</returns>
		[ScriptName("getMinimumSize")]
		public System.Number GetMinimumSize()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Sets the minimum size for the resizing element</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		/// <param name="minSize">The minimum size</param>
		[ScriptName("setMinimumSize")]
		public void SetMinimumSize(System.Number minSize)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Gets the maximum size for the resizing element</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		/// <returns>The maximum size</returns>
		[ScriptName("getMaximumSize")]
		public System.Number GetMaximumSize()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Sets the maximum size for the resizing element</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		/// <param name="maxSize">The maximum size</param>
		[ScriptName("setMaximumSize")]
		public void SetMaximumSize(System.Number maxSize)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Sets the initialize size for the resizing element</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		/// <param name="size">The initial size</param>
		[ScriptName("setCurrentSize")]
		public void SetCurrentSize(System.Number size)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Destroy this splitbar.</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		/// <param name="removeEl">True to remove the element</param>
		[ScriptName("destroy")]
		public void Destroy(bool removeEl)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
		
		#region Events
		/// <summary>Fires when the splitter is moved (alias for {@link #moved})</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		[ScriptName("resize")]
		public event ext.auto.Delegate_ext_SplitBar_And_System_Number Resize;
		
		/// <summary>Fires when the splitter is moved</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		[ScriptName("moved")]
		public event ext.auto.Delegate_ext_SplitBar_And_System_Number Moved;
		
		/// <summary>Fires before the splitter is dragged</summary>
		/// <definedin>src\widgets\SplitBar.js</definedin>
		[ScriptName("beforeresize")]
		public event ext.auto.Delegate_ext_SplitBar Beforeresize;
		#endregion
	}
}
